package com.zxy.bilibili.util;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

/**
 * FfmpegUtils
 *
 * @author ZENG.XIAO.YAN
 * @version 1.0
 * @Date 2020-08-08
 */
public class FfmpegUtils {

    /** ffmpeg.exe 路径 */
    public static final String  FFMPEG_EXE_PATH = "ffmpeg-4.3.1\\bin\\ffmpeg.exe";

    /**
     * description: 音频+视频合并
     * @param audioPath 音频文件地址
     * @param videoPath 视频文件地址
     * @param outFilePath 输出文件地址
     * @return void
     * @author ZENG.XIAO.YAN
     * @time 2020-08-08 14:45
     */
    public static void doMpeg(String audioPath, String videoPath, String outFilePath) {
        /*
            合并单独的视频流和音频流
             ffmpeg -i 输入文件1的路径 -i 输入文件2的路径 -codec copy 输出文件的路径
        */
        List<String> command = new ArrayList<>();
        command.add(FFMPEG_EXE_PATH);
        command.add("-i");
        command.add(videoPath);
        command.add("-i");
        command.add(audioPath);
        command.add("-codec");
        command.add("copy");
        command.add(outFilePath);
        CommandUtils.execCmd(command);
    }

    public static void main(String[] args) {
        String[] pathArray = {
                "C:\\bilibil\\s_357\\249470\\32",
                "C:\\bilibil\\s_357\\249471\\32",
                "C:\\bilibil\\s_357\\249472\\32",
                "C:\\bilibil\\s_357\\249473\\32"
        };
        Stream.of(pathArray).forEach(x -> {
            String basePath = x;
            doMpeg(basePath +"\\audio.m4s", basePath + "\\video.m4s", basePath + "\\cat.mp4");
        });

    }
}
